package com.chenfan.process.biz;

import java.util.Collection;
import java.util.List;
import java.util.concurrent.ExecutionException;

import com.chenfan.process.dto.ApprovalOperationDTO;
import com.chenfan.process.dto.CheckPermissionDTO;
import com.chenfan.process.dto.StartApprovalDTO;
import com.chenfan.process.vo.ApprovalNodeVO;
import com.chenfan.process.vo.ApprovalOperationVO;
import com.chenfan.process.vo.StartApprovalVO;

/**
 * @author liuming
 * @date 2021/10/11
 */
public interface ApprovalInternalBiz {
    List<ApprovalOperationVO> batchApproval(List<ApprovalOperationDTO> approvalList)
        throws InterruptedException, ExecutionException;

    List<ApprovalNodeVO> listApprovalNode(Collection<Long> approvalIdList);

    List<ApprovalNodeVO> listCurrentApprovalNode(Collection<Long> approvalIdList);

    ApprovalNodeVO getApprovalNode(Long approvalId);

    Boolean checkPermission(CheckPermissionDTO checkPermission);

    List<StartApprovalVO> startBatchApproval(String projectName, String approvalTemplateCode,
        List<StartApprovalDTO> approvalList) throws ExecutionException, InterruptedException;
}
